package com.weitu.train.certificate.mapper;

import com.weitu.train.certificate.entity.Certificate;
import com.weitu.train.certificate.entity.PersonFile;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Sun
 * date 2017/05/12 13:46
 */
public interface CertificateMapper {
    /** 
     * 根据ID删除
     * @param id 主键ID
     */
    int deleteById(@Param("id") String id);

    /**
     * 添加对象所有字段
     * @param record 插入字段对象(必须含ID）
     */
    int insert(Map<String,Object> record);

    /** 
     * 添加对象对应字段
     * @param record 插入字段对象(必须含ID）
     */
    int insertSelective(Certificate record);

    /** 
     * 根据ID查询
     * @param id 主键ID
     */
    Certificate selectById(@Param("id") String id);

    /** 
     * 根据ID修改对应字段
     * @param record 修改字段对象(必须含ID）
     */
    int updateByIdSelective(Certificate record);

    /**
     * 根据ID修改所有字段(必须含ID）
     * @param record 修改字段对象(必须含ID）
     */
    int updateById(Map<String,Object> record);

    /**
     * 添加发证记录
     * @param map
     * @return
     */
    int insertRecords(Map<String,Object> map);

    /**
     * 证书管理模块列表
     * @param map
     * @return
     */
    List<Certificate> selectAllCertificate(Map<String,Object> map);

    /**
     * 证书管理模块列表总数
     * @param map
     * @return
     */
    int selectAllCertificateCount(Map<String,Object> map);

    List<Map<String,Object>> selectRecords(@Param("certificateId") String certificateId);

    int insertRecordsList(Map<String ,Object> map);
    int deleteByCertificateId(@Param("certificateId") String certificateId);

    /**
     * 员工培训档案
     * @param map
     * @return
     */
    List<PersonFile> selectFiles(Map<String,Object> map);
    int selectFilesCount(Map<String,Object> map);

    List<Map<String,Object>> selectRecordsByUserId(@Param("userId") String userId);
    List<Map<String,Object>> selectCertByUserId(@Param("userId") String userId);
}